import "Jesse205.MyStyle"
App.color={
  White=0xffffffff,
  Black=0xff000000,
  Red=0xFFF44336,
  Blue=0xff4477e0,
  Green=0xff009688,
  Grey=0xFF607D8B,
}

function SeekBarColor(id,color)
  id.ProgressDrawable.setColorFilter(PorterDuffColorFilter(color,PorterDuff.Mode.SRC_ATOP))
  id.Thumb.setColorFilter(PorterDuffColorFilter(color,PorterDuff.Mode.SRC_ATOP))
end

MoreVisualEffect=activity.getSharedData("更多视觉效果")



function Ripple(view,color,ripple)
  local drawable=activity.Resources.getDrawable(_ripple[ripple or "circle"])
  if color then
    drawable.setColor(ColorStateList(int[0].class{int{}},int{color}))
  end
  if view then
    view.setBackground(drawable)
   else
    return drawable
  end
end


function ButtonFrame(view,Thickness,FrameColor,InsideColor,radiu)
  import "android.graphics.drawable.GradientDrawable"
  local drawable = GradientDrawable()
  drawable.setShape(GradientDrawable.RECTANGLE)
  if Thickness and FrameColor then
    drawable.setStroke(Thickness, FrameColor)
  end
  drawable.setColor(InsideColor)
  if type(radiu)=="number" then
    drawable.setCornerRadius(radiu)
   elseif type(radiu)=="table" then
    drawable.setCornerRadii(radiu)
  end
  if view then
    view.setBackgroundDrawable(drawable)
   else
    return drawable
  end
end

function RadiusRipple(view,background,color,radiu)
  --import "android.graphics.drawable.GradientDrawable"
  import "android.graphics.drawable.ShapeDrawable"
  import "android.graphics.drawable.shapes.RoundRectShape"
  import "android.graphics.drawable.RippleDrawable"
  local maskDrawable = ShapeDrawable()

  maskDrawable.setShape(RoundRectShape({radiu,radiu,radiu,radiu,radiu,radiu,radiu,radiu},nil,nil))
  rippleDrawable=RippleDrawable(ColorStateList(int[0].class{int{}},int{color}),background,maskDrawable)
  if view then
    view.setBackgroundDrawable(rippleDrawable)
   else
    return rippleDrawable
  end

end
function MD2ButtonBackground(view,frameColor,rippleColor)
  local drawable=RadiusRipple(nil,ButtonFrame(nil,math.dp2int(2),frameColor or 淡色普通,0,math.dp2int(8)),rippleColor or 普通波纹,math.dp2int(8))
  if view then
    view.setBackgroundDrawable(drawable)
   else
    return drawable
  end
end

function NoFrameButton(view,color,radius)
  local drawable=RadiusRipple(nil,ButtonFrame(nil,nil,nil,0,nil),color or 普通波纹,radius or math.dp2int(8))
  if view then
    view.setBackgroundDrawable(drawable)
   else
    return drawable
  end
end

function DialogButtonFilter(id,button,color)
  if Build.VERSION.SDK_INT >= 22 then
    local buttons={id.BUTTON_POSITIVE,id.BUTTON_NEGATIVE,id.BUTTON_NEUTRAL}
    id.getButton(buttons[button]).setTextColor(color)
  end
end



function isDarkColor(color)
  --local color=Integer.toHexString(color)
  return (0.299 * Color.red(color) + 0.587 * Color.green(color) + 0.114 * Color.blue(color)) <192
end

function autoActionbarAccent(value1,value2)
  if not(isActionbarDark) then
    isActionbarDark=isDarkColor(工具栏颜色)
  end
  if isActionbarDark then
    return value2
   else
    return value1
  end
end

function NavigationbarColor(color)
  activity.Window.setNavigationBarColor(color)
end

function getThemeColor()


  local array = activity.getTheme().obtainStyledAttributes({
    android.R.attr.colorBackground,
    android.R.attr.textColorPrimary,
    android.R.attr.colorPrimary,
    android.R.attr.colorPrimaryDark,
    android.R.attr.colorAccent,
    android.R.attr.navigationBarColor,
    android.R.attr.statusBarColor,
    android.R.attr.colorButtonNormal,
    android.R.attr.windowBackground,
    android.R.attr.textColorSecondary,
    
    android.R.attr.selectableItemBackgroundBorderless,
    android.R.attr.selectableItemBackground,
  });

  --App.color.colorBackground=array.getColor(0,0xFF00FF)
  --App.color.textColorPrimary=array.getColor(1,0xFF00FF)
  App.color.colorPrimary=array.getColor(2,0xFF00FF)
  App.color.colorPrimaryDark=array.getColor(3,0xFF00FF)
  App.color.colorAccent=array.getColor(4,0xFF00FF)
  App.color.navigationBarColor=array.getColor(5,0xFF00FF)
  App.color.statusBarColor=array.getColor(6,0xFF00FF)
  App.color.colorButtonNormal=array.getColor(7,0xFF00FF)
  App.color.windowBackground=array.getColor(8,0xFF00FF)
  App.color.textColorSecondary=array.getColor(9,0xFF00FF)

  App.drawable.id.selectableItemBackgroundBorderless=array.getResourceId(10,0)
  App.drawable.id.selectableItemBackground=array.getResourceId(11,0)
  array.recycle()
  _ripple={}
  _ripple.circle=App.drawable.id.selectableItemBackgroundBorderless
  _ripple.square=App.drawable.id.selectableItemBackground


  强调色=App.color.colorAccent
  工具栏颜色=App.color.colorPrimary
  导航栏颜色=App.color.navigationBarColor
  状态栏颜色=App.color.statusBarColor
  背景颜色=App.color.windowBackground
  半透明背景颜色=修改颜色强度("EE",背景颜色)
  普通消极色=App.color.textColorSecondary
end
function isNightMode(context)
  return activity.getResources().getConfiguration().uiMode==33
end
function 修改颜色强度(强度,颜色)--16进制
  return (tonumber("0x"..强度..string.sub(Integer.toHexString(颜色),3,8)))
end


主题={}
function 主题.name(name)
  if name then
    activity.setSharedData("Theme",name)
  end
  return activity.getSharedData("Theme")
end



主题.系统夜间=isNightMode

function 主题.普通白色()
  强调文字色=App.color.White
  强调图片色=App.color.White
  强调波纹=0x44FFFFFF
  淡色强调=修改颜色强度(22,强调色)
  淡色强调波纹=修改颜色强度(44,强调色)
  淡色普通=0xFFEEEEEE
  淡色普通波纹=0x22000000
  普通色=背景颜色
  
  普通文字色=0xFF000000
  普通图片色=0xff5f6368
  普通波纹=0x22000000
  工具栏阴影=0
  导航栏分割线=0
  --按钮圆角=math.dp2int(4)
end
function 主题.普通黑色()
  强调文字色=App.color.White
  强调图片色=App.color.White
  强调波纹=0x44FFFFFF
  淡色强调=修改颜色强度(22,强调色)
  淡色强调波纹=修改颜色强度(44,强调色)
  淡色普通=0xff424242
  淡色普通波纹=0x44FFFFFF
  普通色=背景颜色
  普通消极色=0xffc4c4c4
  普通文字色=0xFFFFFFFF
  普通图片色=0xffc4c4c4
  普通波纹=0x44FFFFFF
  工具栏阴影=0
  导航栏分割线=0
end

function 刷新主题()
  import "android.graphics.PorterDuffColorFilter"
  import "android.graphics.PorterDuff"
  import "android.graphics.Color"
  import "android.graphics.drawable.ColorDrawable"
  import "android.content.res.ColorStateList"

  if 主题.name() == nil then
    主题.name("White")
  end


  local themeFunction={
    White=function()
      主题.普通白色()
      --云极客颜色="indigo"
      导航栏颜色=0xFF000000
    end,
    Blue=function()
      主题.普通白色()
      --云极客颜色="indigo"
    end,
    NewYearRed=function()
      --主题.普通白色()
      强调波纹=修改颜色强度(99,强调色)
      强调文字色=0xFFFFFFFF
      强调图片色=0xFFFFFFFF
      强调波纹=0x44FFFFFF
      淡色强调=修改颜色强度(44,强调色)
      淡色强调波纹=修改颜色强度(99,强调色)
      --淡色普通=0xff424242
      淡色普通=App.color.colorPrimaryDark
      淡色普通波纹=0x44FFFFFF
      普通色=背景颜色
      普通文字色=0xFFFFFFFF
      普通图片色=0xffc4c4c4
      普通波纹=0x44FFFFFF
      工具栏阴影=0
      导航栏分割线=0
      --云极客颜色="red"
      --按钮圆角=math.dp2int(4)
    end,
    Pink=function()
      主题.普通白色()
      --强调波纹=修改颜色强度(99,强调色)
      --云极客颜色="red"
    end,
    HonorGreen=function()
      主题.普通白色()
      --云极客颜色="cyan"
    end,
    DeviceBlack=function()
      主题.普通白色()
      淡色普通=0xFFF0F0F0
      普通波纹=0x22000000
      工具栏阴影=nil
      --云极客颜色="teal"
      导航栏分割线=nil
    end,
    DeviceWhite=function()
      主题.普通白色()
      淡色普通=0xFFF0F0F0
      普通波纹=0x22000000
      工具栏阴影=nil
      --云极客颜色="teal"
      导航栏分割线=nil
    end,
    SuperBlack=function()
      主题.普通黑色()
    end,
    Night=function()
      主题.普通黑色()
    end,
  }
  --[[
  themeFunction[(function()
    if isNightMode() then
      return "Night"
     elseif themeFunction[主题.id()] then
      return 主题.id()
     else
      return "White"
    end
  end)()]()]]
  local ThemeName=主题.name()
  if isNightMode() then
    activity.setTheme(App.R.style.Night)
    getThemeColor()
    themeFunction["Night"]()
   elseif themeFunction[ThemeName] then
    activity.setTheme(App.R.style[ThemeName])
    getThemeColor()
    themeFunction[ThemeName]()
   else
    activity.setTheme(App.R.style.White)
    getThemeColor()
    themeFunction["White"]()
  end

  --[[
  switch 主题.id()
   case 1
    activity.setTheme(R.Theme_AppLua7)
    getThemeColor()
    主题.普通白色()
    云极客颜色="indigo"
    导航栏颜色=0xFF000000
   case 2
    activity.setTheme(R.Theme_AppLua)
    getThemeColor()
    主题.普通白色()
    云极客颜色="indigo"
   case 3
    activity.setTheme(R.Theme_AppLua2)
    getThemeColor()
    主题.普通白色()
    强调波纹=修改颜色强度(99,强调色)
    云极客颜色="red"
   case 4
    activity.setTheme(R.Theme_AppLua3)
    getThemeColor()
    主题.普通白色()
    云极客颜色="cyan"
   case 5
    activity.setTheme(R.Theme_AppLua4)
    getThemeColor()
    主题.普通白色()
    淡色普通=0xFFF0F0F0
    淡色普通波纹=0x22000000
    普通色=0xFFD6D8D7
    普通波纹=0x22000000
    工具栏阴影=10
    云极客颜色="teal"
   case 6
    activity.setTheme(R.Theme_AppLua5)
    getThemeColor()
    主题.普通白色()
    淡色普通=0xFFF0F0F0
    淡色普通波纹=0x22000000
    普通色=0xFFD6D8D7
    普通波纹=0x22000000
    工具栏阴影=10
    云极客颜色="teal"
  end
]]



  if 工具栏阴影 then
    activity.ActionBar.setElevation(工具栏阴影)--ActionBar阴影
  end
  --[[
  if 按钮圆角 then
    Button().background.getDrawable(0).getDrawable().setCornerRadius(按钮圆角)
  end]]
  systemUIInfo=View.VISIBLE
  --activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS).setStatusBarColor(状态栏颜色);
  if tonumber(Build.VERSION.SDK) >= 23 then
    if not(isDarkColor(状态栏颜色)) then
      systemUIInfo=systemUIInfo|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR--暗色状态栏
    end
  end

  if activity.getSharedData("导航栏使用暗色") then
    NavigationbarColor(导航栏颜色)
   else
    if tonumber(Build.VERSION.SDK) >= 26 then
      NavigationbarColor(背景颜色)
      if not(isDarkColor(背景颜色)) then
        systemUIInfo=systemUIInfo|View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR--暗色导航栏
      end
     elseif 背景颜色==0xFFFFFFFF then
      NavigationbarColor(0xFF9E9E9E)
     else
      NavigationbarColor(背景颜色)
    end
  end

  activity.Window.DecorView.setSystemUiVisibility(systemUIInfo)--设置SystemUI

  if 导航栏分割线 then
    pcall(function()
      activity.Window.setNavigationBarDividerColor(导航栏分割线)
    end)
  end

end
主题.刷新=刷新主题





if not(notLoadTheme) then
  刷新主题()
  --activity.ActionBar.setShowHideAnimationEnabled(true)
end